package com.example.demo.service;

import com.example.demo.entity.User;
import org.springframework.data.domain.Page;

import java.util.List;

/**
 * Service业务层接口 由 ServiceImpl实现具体的业务逻辑
 *
 * @author itloser.info
 * @date 2021/9/9
 */
public interface UserService {

    /**
     * 获取用户列表
     *
     * @return 用户列表
     */
    List<User> findAll();

    /**
     * 获取邮箱验证码
     *
     * @param codeType 验证码类型 0注册 1登录 2设备认证 3找回密码 4注销
     */
    void getCode(int codeType);

    /**
     * 注册用户
     *
     * @param userName 用户名 目前只有邮箱
     * @param userPwd  密码
     * @param vCode    验证码
     * @return 注册成功后的登录信息
     */
    User registerAndLogin(String userName, String userPwd, String vCode);

    /**
     * 密码登录
     *
     * @param userName 用户名
     * @param userPwd  密码
     * @return 登录成功后的登录信息
     */
    User loginByPassword(String userName, String userPwd);

    /**
     * 验证码登录
     *
     * @param userName 用户名
     * @param vCode    密码
     * @return 登录成功后的登录信息
     */
    User loginByVCode(String userName, String vCode);

    /**
     * 退出登录
     *
     * @return 是否退出成功
     */
    int logout();

    /**
     * 修改用户信息
     *
     * @param user 用户对象
     * @return 修改后的用户信息
     */
    User update(User user);


}
